package org.wishwork.api.aftersale.upload.request;

import lombok.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * @description: 售后上传
 * @author: WangYX
 * @create: 2022-04-12 16:10
 * @Version: 1.0.0
 **/
@EqualsAndHashCode
@ToString
@Getter
@Builder
public class AfterSaleUploadRequest {

    /**
     * 必填
     * 店铺编号
     */
    @NonNull
    private Integer shopId;

    /**
     * 必填
     * 退货退款单号，平台唯一
     */
    @NonNull
    private String outerAsId;

    /**
     * 必填
     * 平台订单号
     */
    @NonNull
    private String soId;

    /**
     * 必填
     * 售后类型，普通退货，其它，拒收退货,仅退款,投诉,补发,换货
     */
    @NonNull
    private String type;

    /**
     * 非必填
     * 快递公司
     */
    private String logisticsCompany;

    /**
     * 非必填
     * 物流单号
     */
    private String lId;

    /**
     * 必填
     * WAIT_SELLER_AGREE:买家已经申请退款，等待卖家同意,
     * WAIT_BUYER_RETURN_GOODS:卖家已经同意退款，等待买家退货,
     * WAIT_SELLER_CONFIRM_GOODS:买家已经退货，等待卖家确认收货,
     * SELLER_REFUSE_BUYER:卖家拒绝退款,
     * CLOSED:退款关闭(售后单未确认前填写该状态erp的售后单自动作废),
     * SUCCESS:退款成功；可更新，补发、换货售后单确认时需在系统中手动确认
     */
    @NonNull
    private String shopStatus;

    /**
     * 非必填
     * 备注
     */
    private String remark;

    /**
     * 必填
     * BUYER_NOT_RECEIVED:买家未收到货,
     * BUYER_RECEIVED:买家已收到货,
     * BUYER_RETURNED_GOODS:买家已退货,
     * SELLER_RECEIVED:卖家已收到退货；可更新
     */
    @NonNull
    private String goodStatus;

    /**
     * 必填
     * 问题类型；可更新
     */
    @NonNull
    private String questionType;

    /**
     * 必填
     * 原单据总金额问题类型；可更新
     */
    @NonNull
    private BigDecimal totalAmount;

    /**
     * 必填
     * 卖家应退金额
     */
    @NonNull
    private BigDecimal refund;

    /**
     * 必填
     * 买家应补偿金额
     */
    @NonNull
    private BigDecimal payment;

    /**
     * 商品列表
     */
    @NonNull
    @Singular
    private List<Item> items;


}
